package decorator_pattern.ex1;

/**
 * @author 申书航
 * @version 1.0
 *
 * 装饰者类，增加攻击能力的Troll。
 */
public class AddAttackTroll extends DecoratorTroll{

    private int noDefense;

    private boolean addAttack;

    /**
     * 构造函数，接收一个Troll对象。
     *
     * @param troll 被装饰的Troll对象
     */
    public AddAttackTroll(Troll troll) {
        super(troll);
    }

    /**
     * 对目标Troll进行攻击，增加攻击逻辑。
     *
     * @param target 攻击的目标Troll
     * @return 造成的伤害值
     */
    @Override
    public int attack(Troll target) {
        int damage = super.attack(target);
        if (damage == 1 && !addAttack) {
            noDefense++;
            if (noDefense > 5) {
                //5次没破防，增加攻击
                System.out.println("需要武器！");
                super.setAttackPower(super.getAttackPower() + 100);
                addAttack = true;
            }
        }
        return damage;
    }
}
